package domain;

import java.io.File;

public class GenCertiInput {
    private String name;//证书别名
    private String keyPsw;//证书别名的密码
    private String storePsw;//获取证书信息的密码
    private int days = -1;//有效期，以天为单位
    //private String certFilePath;//指定生成证书的位置,文件为name.keystore

    public GenCertiInput() {

    }
    //String certFileName,
    public GenCertiInput(String name, String keyPsw, int days,  String storePsw) {
        this.name = name;
        this.keyPsw=keyPsw;
        this.days=days;
        //this.certFilePath =certFileName;
        this.storePsw=storePsw;
    }

    /**
     * 检查生成证书时输入信息的合法性，
     * 若不合法返回错误信息，否则返回null
     * @return
     */
    public String check(){
        String errMsg=null;
        if(name==null ||name.trim().equals("")){
            errMsg="\n"+"name参数为空！";
        }
        if(keyPsw==null||keyPsw.trim().equals("")){
            if(errMsg==null) {
                errMsg = "";
            }
            errMsg+="证书别名的密码为空！";
        }

        if(days<=0){
            if(errMsg==null){
                errMsg="";
            }
            errMsg+="有效期（以天为单位）必须大于0！";
        }
        /*
        if (certFilePath ==null||certFilePath.trim().equals("")){
            if(errMsg==null){
                errMsg="";
            }
            errMsg+="指定生成证书的位置未设定！";
        }
        else {
            File file = new File(certFilePath.trim());
            if(!file.exists()){
                if(errMsg==null){
                    errMsg="";
                }
                errMsg+="指定生成证书的路径不存在！";
            }
            else{
                if(!certFilePath.endsWith(File.separator)){
                    certFilePath=file.getAbsolutePath();
                }
            }
        }*/
        if(storePsw==null||storePsw.trim().equals("")){
            if(errMsg==null){
                errMsg="";
            }
            errMsg+="获取证书信息的密码为空";
        }
        return errMsg;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getKeyPsw() {
        return keyPsw;
    }

    public void setKeyPsw(String keyPsw) {
        this.keyPsw = keyPsw;
    }

    public String getStorePsw() {
        return storePsw;
    }

    public void setStorePsw(String storePsw) {
        this.storePsw = storePsw;
    }

    public int getDays() {
        return days;
    }

    public void setDays(int days) {
        this.days = days;
    }
    /*
    public String getCertFilePath() {
        return certFilePath;
    }

    public void setCertFilePath(String certFilePath) {
        this.certFilePath = certFilePath;
    }*/
}
